Implementation

A Jinx-database is represented on disk as follows. The file name.des contains lines of text like

attribute-name : column-number : attribute-value
where attribute-name can be name or cpat. The corresponding attribute-values represent fieldnames and constraint patterns for column column-number. Other attributes may be introduced later.

The file name.dat contains lines of text, one for each record.

In both files fields are separated by a colon (`:'). The colons in user data and attribute values are escaped by exclamation marks (`!'), as are the exclamation marks in user data and attribute values. (I know I could have used tabs as field separators and no escapes since tabs are forbidden in user data anyway. I didn't because I hate tabs and wanted to keep the files readable :–).

Various things may change sooner or later. However, the format of the files is flexible enough to allow transparant upgrades.